#include "myStdio.h"
#include <stdio.h>

int main()
{
    FILE_* pf =fopen_("./log.txt","w");
    if(pf==NULL)
    {
        return 1;
    }
    int cnt =10;
    const char* msg = "hello zjj\n";
    while(1)
    {
        fwrite_(msg,strlen(msg),pf);
        fflush_(pf);
        sleep(1);
        printf("count:%d\n",cnt);
        cnt--;
        if(cnt==0) break;
    }
    fclose_(pf);

    return 0;
}


//#include <stdio.h>
//#include <string.h>
//#include <unistd.h>
//
//int main()
//{
//    //C
//    printf("C_printf\n");
//    fprintf(stdout,"C_fprintf\n");
//    const char* c_puts="C_fputs\n";
//    fputs(c_puts,stdout);
//
//    //OS
//    const char* os_write="OS_write\n";
//    write(1,os_write,strlen(os_write));
//    
//    //在代码结束之前，进行子进程的创建
//    //1.如果我们没有进行>(打印在显示器上)，看到了4条信息
//    //  stdout默认的就是行刷新，在进行fork之前，三条C函数已经将数据进行打印输出到显示器(外设)，你的FILE内部，进程内部不存在对应的数据了
//    //2.如果我们进行了>(打印到文件)，看到了7条信息
//    //  写入文件就是全缓冲，之前的三条C显示函数，虽然带了\n但不足矣将缓冲区写满！数据并没有被刷新。
//    //  执行fork时，stdout属于父进程，创建子进程时，紧接着就是进程退出！谁先退出，一定要进行缓冲区刷新(就是修改)
//    //3.write为什么没有呢？
//    //  上面的过程都与write无关，write没有FILE，而用的是fd，就没有C提供的缓冲区
//    fork();
//    return 0;
//}
